Patent document EP 1 548 529 for example discloses a numerical control machine tool.
A numerical control machine tool comprises:                several moving parts able to move relative to one another;        a plurality of actuators designed to bring about a relative movement of these moving parts;        one of these moving parts forms a tool holder able to bear an actual tool, also referred to as a machining tool;        another of these moving parts forms a support to hold means that hold in position an actual workpiece that is the starting point for a component that is to be machined, the machine tool forming a drive line extending between the tool holder and the moving part that forms the support for holding the means that hold in position the workpiece that is the starting point for the component that is to be machined;        a plurality of sensors for generating position data representative of a current position of the tool holder with respect to an actual machine frame of reference;        a physical controller able to interpret a machining program and, as a function of this interpretation, to command the plurality of actuators to move the tool holder with respect to the means of holding the actual workpiece in position in order thus to be able to move the actual tool borne by the tool holder with respect to the actual workpiece and thus machine this actual workpiece as a function of instructions contained in the machining program.        
The ability to generate a faultless machining program is absolutely essential to the ability to machine a component that conforms to a drawing.
Traditionally, the machining program has been generated by following a complex process illustrated in FIG. 1 and comprising the following series of steps.
In step 1, using computer aided design software, a file is generated that is a three-dimensional model of the component that is to be machined.
In step 2, this file that models the component is transferred to a computer aided manufacturing software package and a first virtual tool is chosen that the operator considers suitable for machining at least a first of the geometric entities of the component modelled in the file. For example, if the operator wishes to drill a hole, the virtual tool will be a drill bit with a given virtual length and a given virtual diameter; if he wishes to perform surfacing, the virtual tool is a milling cutter; if he wishes to create a part exhibiting symmetry of revolution, the virtual tool will be a turning tool.
In step 3, the operator delimits geometric entities of the modelled component that is to be produced and associates with each geometric entity a machining strategy which may be a strategy of drilling, surfacing, turning or the like. Each machining strategy is associated with a virtual tool which has been chosen in step 2 and with operating conditions in which the virtual tool is to be used so that it can correctly cut away the material of the workpiece being machined (maximum cutting rate, maximum depth of pass, maximum feed rate, etc.).
In step 4, in accordance with the machining strategy prepared in step 3 which comprises a virtual tool chosen in step 2, the computer aided manufacturing software determines a first virtual path of the virtual tool. This first path of the virtual tool is such that the virtual tool can, by following this first path, machine the geometric entity delimited by the user in step 3.
In step 5, still using the computer aided manufacturing software, the user repeats steps 2 to 4 to define a set of virtual paths for all the virtual tools needed for the virtual machining of all the geometric entities that define the shapes of the component that is to be machined (one shape of the component that is to be machined may be made up of several geometric entities).
In step 6, the user makes a three-dimensional simulation of the removal of material resulting from all of the virtual paths of virtual tools defined in steps 2 to 5. The result of this simulation is a simulated form representing the virtual workpiece machined by the movement of the virtual tools along their respective virtual paths. If the deviation between this form simulated using the computer aided manufacturing software and the component modelled using the computer aided design software is acceptable, namely within the defined tolerances for the component modelled, then he manually commands the computer aided manufacturing software to generate a file summarizing a set of validated virtual paths and validated virtual tools, then moves on to step 7. If not, it is possible either to redesign the component by repeating the process from step 1 to step 6 until there is an acceptable deviation between the simulated form and the modelled component so that the summary file can be generated allowing progression to step 7. The user can also decide to modify the process by modifying at least some of the choices made in steps 2 to 6. For example, he may modify the choices of virtual tools and/or of geometric entities and/or of machining strategies and/or of virtual paths. The operator modifies these choices and runs as many simulations of simulated forms as necessary until the deviation between the simulated form and the modelled component is considered to be acceptable, whereupon the user then generates the summary file and moves on to step 7.
In step 7, the user transfers the file summarizing the set of validated virtual paths and virtual tools to a post processor which is programmed to determine link paths intended to join together the virtual paths of the set of virtual paths that succeed one another. From these link paths and from the virtual paths needed to generate the simulated form of the virtual component, the post processor generates a machining program in the form of a text file that is supposedly directly interpretable by the physical controller of the target machine tool on which the workpiece that is the starting point for the component is to be machined.
In step 8, the machining program supposedly interpretable by the physical controller of the machine tool is recorded and, as described previously, can then be sent to the machine tool where it can be interpreted and executed in slow-time and tested on the actual machine tool. If the machining program is incorrect, there is a risk that the physical controller will interpret it and command the actuators to perform movements which may lead to non-compliant machining of the actual workpiece and/or breakage of the machine tool, for example by the actual tool or tool holder colliding with one of the moving parts of the machine or with the means that hold the actual workpiece. Executing the machining program in slow-time with actual workpiece holding means empty of any actual workpiece or carrying a low-cost dummy actual workpiece allows the operator to detect machining defects and then interrupt this machining and then correct the machining program. The corrected machining program may in turn be executed in slow-time. This iterative process of detecting machining faults is expensive to implement.
In step 9, as an alternative to the test on an actual machine tool as mentioned in step 8, the machining program supposedly interpretable by the physical controller of the machine tool is sent to a virtual machine tool that simulates the actual operation of the target machine tool on which the workpiece that forms the starting point for the component is to be machined. A virtual controller of the virtual machine tool which simulates the operation of the physical controller of the target machine tool is then activated to interpret the supposedly interpretable machining program. If this interpretation works, the process then moves on to step 10 of executing the machining program on the virtual machine tool comprising a virtual controller. If the interpretation fails, the operator then needs to identify the supposed reason for this interpretation failure and go back and correct parameters in one of the preceding steps 7 to 8. He may, for example, change the version of post processor if he considers it not to be compatible with the virtual machine, or alternatively he may change the version of virtual machine or of virtual controller.
In step 10, the operator executes the machining program interpreted by the virtual controller of the virtual machine tool and, using a three-dimensional representation, visualizes a virtual machining on this virtual machine tool conforming to the machining program interpreted by the virtual controller. This visualization allows the operator to detect virtual machining faults which he wishes not to encounter again during the actual machining. For each fault found during the virtual machining, the operator looks for a potential cause of the fault then repeats at least some of steps 1 to 9 of the process, modifying the parameters that he considers to be responsible for the failure to execute the virtual machining.
This process spanning steps 1 to 10 requires a great deal of software (computer aided design software, computer aided manufacturing software, post processor, software simulating the operation of a machine tool in response to the execution of a machining program, etc.) and numerous types of files in different formats and languages for the exchange of data between these software packages. The complexity of this process makes it very difficult to generate a machining program that can be interpreted and executed by an actual machine tool and that makes it possible to obtain a compliant machined component while at the same time minimizing the risk of breaking the machine or breaking the tool.